/*
 * @Date: 2024-06-26 10:15:23
 * @LastEditors: 陈俊宇 467724386@qq.com
 * @LastEditTime: 2024-10-30 16:35:04
 */
// 导入axios库
import axios from 'axios'
import { ElMessage } from 'element-plus'
// 创建axios实例，可以设置默认的基础URL、超时时间等
const instance = axios.create({
    baseURL: import.meta.env.VITE_SERVE, // 你的API基础URL
    timeout: 10000, // 请求超时时间
})

// 请求拦截器，可以在请求发送前做一些处理，如添加token
instance.interceptors.request.use(
    (config) => {
        // 比如添加token到headers
        return config
    },
    (error) => {
        // 处理请求错误
        return Promise.reject(error)
    }
)

// 响应拦截器，可以处理响应数据，比如统一处理错误状态码
instance.interceptors.response.use(
    (response) => {
        if (response.data.code === 200) {
            return response.data
        } else {
            ElMessage({
                message: response.data.msg,
                type: 'error',
            })

            return Promise.reject(new Error(response.data.msg))
        }
    },
    (error) => {
        // 根据错误状态码进行不同的错误处理
        if (error.response.status === 401) {
            // 处理未授权的情况，如跳转登录页
        } else if (error.response.status === 403) {
            // 处理禁止访问的情况
        } else {
            // 其他错误处理
        }
        return Promise.reject(error) // 返回Promise的reject，以便在调用处处理错误
    }
)

export default instance
